package com.obelisco.vista.seguridad;

import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;

import com.obelisco.modelo.data.TipoEvento;
import com.obelisco.modelo.servicios.seguridad.IServicioAdministrarBitacora;
import com.obelisco.modelo.servicios.seguridad.IServicioAdministrarGrupos;
import com.obelisco.vista.componentes.ContenedorBusqueda;
import com.obelisco.vista.componentes.ContenedorReporte;
import com.obelisco.vista.controles.BindingSelectField;
import com.obelisco.vista.controles.DateField;
import com.obelisco.vista.controles.TextField;

import nextapp.echo2.app.ContentPane;
import nextapp.echo2.app.Grid;
import nextapp.echo2.app.Label;

import nextapp.echo2.app.layout.GridLayoutData;
import nextapp.echo2.app.SelectField;
import nextapp.echo2.app.Extent;

public class ContenedorBusquedaBitacora extends ContenedorReporte {

	private ResourceBundle resourceBundle;

	private DateField txtDesde;

	private DateField txtHasta;

	private BindingSelectField cmbTipoEvento;

	private TextField txtUsuario;

	private TextField txtTransaccion;

	private IServicioAdministrarBitacora servicioAdministrarBitacora;

	/**
	 * Creates a new <code>PaneBusquedaBitacora</code>.
	 */
	public ContenedorBusquedaBitacora() {
		super();

		// Add design-time configured components.
		initComponents();
	}

	/**
	 * Configures initial state of component. WARNING: AUTO-GENERATED METHOD.
	 * Contents will be overwritten.
	 */
	private void initComponents() {
		Grid grdBusqueda = new Grid();
		grdBusqueda.setWidth(new Extent(100, Extent.PERCENT));
		grdBusqueda.setSize(4);
		grdBusqueda.setStyleName("Obelisco.Grid");
		add(grdBusqueda);
		Label label1 = new Label();
		label1.setText("Desde");
		grdBusqueda.add(label1);
		txtDesde = new DateField();
		grdBusqueda.add(txtDesde);
		Label label2 = new Label();
		label2.setText("Hasta");
		grdBusqueda.add(label2);
		txtHasta = new DateField();
		grdBusqueda.add(txtHasta);
		Label label3 = new Label();
		label3.setText("Tipo de Evento");
		grdBusqueda.add(label3);
		cmbTipoEvento = new BindingSelectField(200);
		grdBusqueda.add(cmbTipoEvento);
		Label label4 = new Label();
		label4.setText("Usuario");
		grdBusqueda.add(label4);
		txtUsuario = new TextField(200);
		grdBusqueda.add(txtUsuario);
		Label label5 = new Label();
		label5.setText("Transaccion");
		grdBusqueda.add(label5);
		txtTransaccion = new TextField(200);
		grdBusqueda.add(txtTransaccion);
	}

	@Override
	public  void inicializar() {
		// TODO Auto-generated method stub
		List tiposEvento = servicioAdministrarBitacora.buscarTiposEvento();
		cmbTipoEvento.setItems(tiposEvento);
		
		txtDesde.setDisplayedDate(Calendar.getInstance());
		txtHasta.setDisplayedDate(Calendar.getInstance());
		
		txtUsuario.setText("");
		txtTransaccion.setText("");

	}

	@Override
	public List realizarBusqueda() {
		// TODO Auto-generated method stub
		//return servicioAdministrarBitacora.buscarBitacoras();
		TipoEvento tipo = null;
		if (cmbTipoEvento.getSelectedItem() != null) {
			tipo = (TipoEvento) cmbTipoEvento.getSelectedItem();
		}
		
		//Date fechaInicio = txtDesde.getDateChooser().getDisplayedDate().getTime();
		Date fechaInicio = txtDesde.getDisplayedDate().getInstance(new Locale("es","VE")).getTime();
		Date fechaFin = txtHasta.getDisplayedDate().getInstance(new Locale("es","VE")).getTime();

		
		String usuario = txtUsuario.getText();
		String fuente = txtTransaccion.getText();
		
		return servicioAdministrarBitacora.buscarBitacoras(tipo,fechaInicio,fechaFin,usuario,fuente);
	}

	public IServicioAdministrarBitacora getServicioAdministrarBitacora() {
		return servicioAdministrarBitacora;
	}

	public void setServicioAdministrarBitacora(
			IServicioAdministrarBitacora servicioAdministrarBitacora) {
		this.servicioAdministrarBitacora = servicioAdministrarBitacora;
	}

	@Override
	public Map extraerParametros() {
		// TODO Auto-generated method stub
		HashMap parametros = new HashMap();
		
		Date fechaInicio = txtDesde.getDisplayedDate().getInstance(new Locale("es","VE")).getTime();
		Date fechaFin = txtHasta.getDisplayedDate().getInstance(new Locale("es","VE")).getTime();
		fechaInicio = new Date();
		fechaInicio.setYear(7);		
		parametros.put("fechaInicio", fechaInicio);
		parametros.put("fechaFin", fechaFin);
		
		return parametros;
	}

	@Override
	public List obtenerLista() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public boolean onValidarDatos() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public String rutaArchivoReporte() {
		// TODO Auto-generated method stub
		return null;
	}
}
